﻿using System.Collections.Generic;
using System.Windows.Forms;
using ProyectoSelva.Daos;
using ProyectoSelva.Const;
using ProyectoSelva.Entities;

namespace ProyectoSelva.Forms.Mantenimiento
{
    public class FrmMantenimientoEntidadGenericaFacade
    {
        private Dictionary<int, FrmMantenimientoEntidadGenerica> formularios = new Dictionary<int, FrmMantenimientoEntidadGenerica>();
        
        public FrmMantenimientoEntidadGenericaFacade(Form mdiParent)
        {
            FrmMantenimientoEntidadGenericaHelper<TipoDocumento> frmMantenimientoTipoDocumento = new FrmMantenimientoEntidadGenericaHelper<TipoDocumento>(mdiParent);
            frmMantenimientoTipoDocumento.CadenaDescriptivaEntidad = Maestro.TIPO_DE_DOCUMENTO_CADENA;
            formularios.Add(Maestro.TIPO_DE_DOCUMENTO, frmMantenimientoTipoDocumento);

            FrmMantenimientoEntidadGenericaHelper<Empresa> frmMantenimientoEmpresa = new FrmMantenimientoEntidadGenericaHelper<Empresa>(mdiParent);
            frmMantenimientoEmpresa.CadenaDescriptivaEntidad = Maestro.EMPRESA_CADENA;
            formularios.Add(Maestro.EMPRESA, frmMantenimientoEmpresa);

            FrmMantenimientoEntidadGenericaHelper<Proyecto> frmMantenimientoProyecto = new FrmMantenimientoEntidadGenericaHelper<Proyecto>(mdiParent);
            frmMantenimientoProyecto.CadenaDescriptivaEntidad = Maestro.PROYECTO_CADENA;
            formularios.Add(Maestro.PROYECTO, frmMantenimientoProyecto);

            FrmMantenimientoEntidadGenericaHelper<Lote> frmMantenimientoLote = new FrmMantenimientoEntidadGenericaHelper<Lote>(mdiParent);
            frmMantenimientoLote.CadenaDescriptivaEntidad = Maestro.LOTE_CADENA;
            formularios.Add(Maestro.LOTE, frmMantenimientoLote);

            FrmMantenimientoEntidadGenericaHelper<TipoCargo> frmMantenimientoTipoCargo = new FrmMantenimientoEntidadGenericaHelper<TipoCargo>(mdiParent);
            frmMantenimientoTipoCargo.CadenaDescriptivaEntidad = Maestro.TIPO_DE_CARGO_CADENA;
            formularios.Add(Maestro.TIPO_DE_CARGO, frmMantenimientoTipoCargo);

            FrmMantenimientoEntidadGenericaHelper<NivelEstudios> frmMantenimientoNivelEstudios = new FrmMantenimientoEntidadGenericaHelper<NivelEstudios>(mdiParent);
            frmMantenimientoNivelEstudios.CadenaDescriptivaEntidad = Maestro.NIVEL_DE_ESTUDIOS_CADENA;
            formularios.Add(Maestro.NIVEL_DE_ESTUDIOS, frmMantenimientoNivelEstudios);

            FrmMantenimientoEntidadGenericaHelper<MotivoLiquidacion> frmMantenimientoMotivoLiquidacion = new FrmMantenimientoEntidadGenericaHelper<MotivoLiquidacion>(mdiParent);
            frmMantenimientoMotivoLiquidacion.CadenaDescriptivaEntidad = Maestro.MOTIVOS_DE_LIQUIDACION_CADENA;
            formularios.Add(Maestro.MOTIVOS_DE_LIQUIDACION, frmMantenimientoMotivoLiquidacion);

            FrmMantenimientoEntidadGenericaHelper<StatusContrato> frmMantenimientostatusContrato = new FrmMantenimientoEntidadGenericaHelper<StatusContrato>(mdiParent);
            frmMantenimientostatusContrato.CadenaDescriptivaEntidad = Maestro.STATUS_DE_CONTRATO_CADENA;
            formularios.Add(Maestro.STATUS_DE_CONTRATO, frmMantenimientostatusContrato);   
        }

        public void mostrarFormulario(int identificador)
        {
            formularios[identificador].Show();
        }

    }
}
